package fr.ajicommerce.core.entities;

import java.util.Date;
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name = "COMMANDE")
/**
 * Récupération de la commande par sa ref
 */
@NamedQuery(name = "Commande.findCommandeByRef", query = "select c from Commande c where c.refCommande = :refCommande")
public class Commande {

	public final static String FIND_BY_REF_COMMANDE = "Commande.findCommandeByRef";
	@Id
	@GeneratedValue
	private Long idCommande;
	private String refCommande;
	private Date dateCommande;
	private Date dateLivraison;
	private StatusCommande status;
	
	@OneToMany(mappedBy="commande")
	private List<LigneProduit> ligneProduit;
	
	

	public Commande() {

	}

	public Commande(String refCommande, Date dateCommande, Date dateLivraison,
			StatusCommande status, List<LigneProduit> ligneProduit) {

		this.refCommande = refCommande;
		this.dateCommande = dateCommande;
		this.dateLivraison = dateLivraison;
		this.status = status;
		this.ligneProduit = ligneProduit;
		
	}

	public Long getIdCommande() {
		return idCommande;
	}

	public void setIdCommande(Long idCommande) {
		this.idCommande = idCommande;
	}

	public String getRefCommande() {
		return refCommande;
	}

	public void setRefCommande(String refCommande) {
		this.refCommande = refCommande;
	}

	public Date getDateCommande() {
		return dateCommande;
	}

	public void setDateCommande(Date dateCommande) {
		this.dateCommande = dateCommande;
	}

	public Date getDateLivraison() {
		return dateLivraison;
	}

	public void setDateLivraison(Date dateLivraison) {
		this.dateLivraison = dateLivraison;
	}

	public StatusCommande getStatus() {
		return status;
	}

	public void setStatus(StatusCommande status) {
		this.status = status;
	}

	
	
	public List<LigneProduit> getLigneProduit() {
		return ligneProduit;
	}

	public void setLigneProduit(List<LigneProduit> ligneProduit) {
		this.ligneProduit = ligneProduit;
	}

	@Override
	public String toString() {
		return "Commande [idCommande=" + idCommande + ", refCommande="
				+ refCommande + ", dateCommande=" + dateCommande
				+ ", dateLivraison=" + dateLivraison + ", status=" + status
				+ ", ligneProduit="  + "]";
	}

}
